Particular embodiments generally relate to file compression.
When compressing large amounts of data, a window of a certain size may be used to review data found in the window. For example, the window may take a block of a certain size of data and analyze that data for redundancies. The window may be moved from along the data and continually analyzed for possible compression. The reason for using the window is that it speeds up the compression process by looking at smaller amounts of data in the window rather than having to search the whole file of data for redundancies. Although speed may be gained, the amount of compression may not be as great as desired or the data may not be compressed as efficiently as possible. Also, when compressing streaming data, a small window of data can only be reviewed at once as the data is streamed.